M c tiêu c a bài:ụ ủ
Hi u để ược đ c tính c a các đi u khi n hi n th d li u;ặ ủ ề ể ể ị ữ ệ Bi t quy trình thi t k các d ng bi u m u;ế ế ế ạ ể ẫ
S d ng đử ụ ược các đi u khi n c b n;ề ể ơ ả
Khai báo và s d ng đử ụ ược các thành ph n c a Moduleầ ủ
K t n i và hi n th đế ố ể ị ượ ơ ở ữ ệc c s d li u Access b ng DataGridview;ằ
Nghiêm túc, sáng t o, ch đ ng trong vi c thi t k và k th a các d ngạ ủ ộ ệ ế ế ế ừ ạ bi u m u khác nhau.ể ẫ
1. Thi t k th c đ n b ng MenuStripế ế ự ơ ằ
1.1 T o Menuạ
T o m i m t gi i pháp mang tên ạ ớ ộ ả MyMenu và thêm vào đó m t d án m i cùngộ ự ớ tên nh đã bi t trong các bài t p trư ế ậ ước.
T i giao di n thi t k , các b n đ a đi u khi n ạ ệ ế ế ạ ư ề ể MenuStrip vào trong Form b ng cách double click hay kéo th nh đã bi t.ằ ả ư ế
Chúng ta không c n quan tâm đ n v trí c a menu trên form vì VS s t đ ngầ ế ị ủ ẽ ự ộ đ t nó sao cho phù h p. Các b n có th thay đ i các thu c tính sao cho phù h pặ ợ ạ ể ổ ộ ợ b ng cách click m ằ ở Smart Tags là nút mũi tên tam giác màu đen bên góc ph i đi uả ề khi n ể Menu.
Hình 25
Khi được đ t vào form thì đi u khi n menu s đặ ề ể ẽ ược đ t t i m t vùng nh trênặ ạ ộ ư hình g i là ọ khay công c Component trayụ và VS s hi n th tr c quan menu trênẽ ể ị ự đ u c a s Form.ầ ử ổ
Chu i ỗ Type Here là n i b n có th click ch n và nh p vào các m c ch n choơ ạ ể ọ ậ ụ ọ menu, chúng ta s t o ra menu đ n gi n nh sau:ẽ ạ ơ ả ư
Nh p chu t vào chu i ắ ộ ỗ Type Here và gõ vào chu i “Clock” và n enter.ỗ ấ Nh p chu t vào chu i ắ ộ ỗ Type Here con dở ướ ồi r i gõ Date, Time nh hìnhư
Hình 26
Đ đóng ph n thi t k menu, chúng ta click vào m t vùng nào đó trên form, để ầ ế ế ộ ể hi n th l i click vào menu ể ị ạ Clock nh trên.ư
1.2 M t s tùy bi n cho Menuộ ố ế
1.2.1 Thêm phím truy c p vào các m c ch n l nh trên menuậ ụ ọ ệ
Trong m t s ph n m m hay ngay trình duy t Windows Explorer c a h đi uộ ố ầ ề ệ ủ ệ ề hành các b n có th n t h p ạ ể ấ ổ ợ Alt + phím t tắ đ m nhanh m t th c đ n nào đó.ể ở ộ ự ơ Các phím t t y đắ ấ ược g i là phím truy c p – ọ ậ Access Key. Phím này có d u g chấ ạ chân dở ưới.
Trong .NET, đ t o phím này menu chúng ta ch vi c gõ thêm d u ‘&’ trể ạ ở ỉ ệ ấ ước ký t nào mu n hi n th g ch chân trong ph n ự ố ể ị ạ ầ Type Here.
Ví d sau đây t o ra các phím t t cho các m c ch n c a menu ụ ạ ắ ụ ọ ủ Clock nh hình:ư
Hình 27
1.2.2 Thay đ i th t các m c ch nổ ứ ự ụ ọ
Đ thay đ i th t các m c ch n chúng ta m ch đ thi t k menu r i nh pể ổ ứ ự ụ ọ ở ế ộ ế ế ồ ắ ch n m c ch n nào đó và kéo nó đ n v trí mong mu n.ọ ụ ọ ế ị ố
Ch ng h n đ kéo m c ch n ẳ ạ ể ụ ọ Time lên thay cho v trí m c ch n ị ụ ọ Date, trước tiên chúng ta nh p và gi chu t m c ch n ắ ữ ộ ụ ọ Time và kéo th lên phía trên m c ch n ả ụ ọ Date
1.2.3 Đ t tên và thu c tính cho menuặ ộ
Đ thay đ i thu c tính tên cho 1 menu, ch n Properties c a menu đó.ể ổ ộ ọ ủ
Hình 28 Ví d : ụ
Thay đ i tên menu: vào thu c tính Text.ổ ộ Ví trí tên menu : TextAlign.
Màu n n: BackColor.ề Màu ch : ForeColor, …ữ
Đ thay đ i thu c tính nào chúng ta ch n vào thu c tính đó và thay đ i giá trể ổ ộ ọ ộ ổ ị m i tùy theo ki u giá tr c a thu c tính.ớ ể ị ủ ộ
Vì v y, đ đ t tên cho control hay m t menu c th chúng ta vào thu c tínhậ ể ặ ộ ụ ể ộ Name:
Tên hi n t i là “DateToolStripMenuItem” có th thay đ i theo ý mu n c aệ ạ ể ổ ố ủ ngườ ậi l p trình. Thu c tính Name độ ược g i trong quá trình l p trình các s ki n đọ ậ ự ệ ể th c thi ng d ng.ự ứ ụ
1.3 Vi t l nh cho s ki n c a menuế ệ ự ệ ủ
Các S kiên c a menu n m trong m c Event c a c a s thu c tính (Properties).ự ủ ằ ụ ủ ử ổ ộ
Hình 29
Đ minh h a, chúng ta vi t l nh cho s ki n nh p chu t vào menu b ng cáchể ọ ế ệ ự ệ ấ ộ ằ nh p đôi chu t vào s ki n Click đ vi t l nh, m t s a s code s hi n ra, ngắ ộ ự ệ ể ế ệ ộ ử ổ ẽ ệ ười l p trình ch c n vi t ph n th c hi n công vi c mình mong mu n gi a th t c sậ ỉ ầ ế ầ ự ệ ệ ố ữ ủ ụ ự ki n Private Sub…End Sub.ệ
Private Sub DateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateToolStripMenuItem.Click
MessageBox.Show("Ngày hiện tại: " + Today.ToString()) End Sub
Khi người dùng n vào menu “Date” chấ ương trình s xu t hi n h p tho iẽ ấ ệ ộ ạ thông báo ngày tháng hi n t i.ệ ạ
Hình 30 2. Thi t k các d ng formế ế ạ
2.1 Form cha
Hình 31
Gi s tên form là frmMain, đ form trên tr thành form cha chúng ta hãy ch cả ử ể ở ắ ch n r ng đã ch n thu c tính:ắ ằ ọ ộ IsMdiContainer = True đ thi t l p đây là Form cha.ể ế ậ
2.2 Form con
Thêm vào Project hai form m i là “Thêm nhân viên” (frmEmployee) và “Danhớ sách nhân viên” (frmListEmpoyee).
Hình 32
Form “Thêm nhân viên” (frmEmployee)
Hình 33
Vi t s ki n Click cho 2 nút “Thêm nhân viên” và “Danh sách nhân viên” trênế ự ệ thanh MenuStrip c a Form Cha đ hi n th form tủ ể ể ị ương ng.ứ
frmEmployee.MdiParent = Me frmEmployee.Show()
và
frmListEmployee.MdiParent = Me frmListEmployee.Show()
Khi ch n ch c năng t menu tọ ứ ừ ương ng, các form con s “n m g n” trong formứ ẽ ằ ọ cha nh hình dư ưới đây:
Hình 34
Chú ý, thu c tính ộ MdiParent dùng đ thi t l p Form Cha c a các form nàyể ế ậ ủ là frmMain.
3. S d ng các đi u khi n c b nử ụ ề ể ơ ả
3.1 Mối quan hệ giữa thuộc tính, phương th c vàứ sự ki nệ
M cặ dù thu cộ tính, ph ngươ thức và sự ki nệ có vai trò khác nhau nh ngư chúng th ngườ xuyên liên hệ v iớ nhau. Ví dụ, n u taế di chuyển một đi u khi nề ể b ngằ ph ngươ thức Move thì m t s thu cộ ố ộ tính như Top, Height, Left, Width sẽ thay đ iổ theo theo, khi đó kích cỡ c a điủ ều khiển thay đ iổ tức là sự ki nệ Resize xảy ra.
Phụ thu cộ l nẫ nhau còn có nghĩa là ta có thể thực hi nệ m t cộ ông vi cệ bằng nhi uề cách: xử lý trên thu cộ tính ho cặ xử lý b ngằ ph ngươ thức.
Ví dụ: ta có 2 cách để làm h pộ văn b nả textBox1 xu tấ hiện và biến m tấ trên màn hình:
Thực hi nệ b ngằ thu cộ tính:
Xu tấ hi nệ : TextBox1.Visible = True
Bi nế m tấ: TextBox1.Visible = False
Thực hi nệ b ngằ ph ngươ thức:
Xu tấ hi nệ : TextBox1.Show()
Bi nế m tấ: TextBox1.Hide()
3.2 Thuộc tính, phương th c,ứ sự ki n ệ c aủ một số đi u ề khi n c bể ơ ản 3.2.1 Form
3.2.1.1. Thu cộ tính
Name Tên form, bắt đầu b i ở tiếp đầu ng ữfrm BackColor Thiết lập mầu nền cho Form.
BackgroundImage Thiết lập ảnh nền cho Form.
BackgroundImageLayout Thiết lập chế độ hiển thị ảnh nền trên Form. Tile: hiển thị ảnh t trừ ên xu nố g, Center: hiển thị ảnh từ gi aữ ra, Stretch: dãn đều ảnh trên Form.
AcceptButton Thiết lập nút lệnh Accept. Sự kiện Click c aủ nút lệnh này đ cượ g i bọ ất c khi nào ứ ng iườ dùng bấm phím Enter.
CancelButton Thiết lập nút lệnh Cancel. Sự kiện Click c aủ nút lệnh này đ cượ g i bọ ất c khi nào ứ ng iườ dùng bấm phím Esc.
Cursor Thiết lập chế đ hiộ ển thị con tr trỏ ên Form.
Enabled Nếu nhận giá trị True thì cho phép ng iườ dùng tác động lên Form, Ngược lại thì nhận giá tr ịFalse. Font Thiết lập kiểu ch , ữ cỡ ch ữ cho các điều khiển trên
Form.
ForeColor Thiết lập mầu ch ữcho các điều khiển trên Form. FormBorderStyle Thiết lập kiểu đƣờng viền cho Form. Fixed Single:
không thể thay đ iổ kích th cướ c aủ Form, Sizable: có thể phóng to thu nhỏ và thay đ iổ kích thước c aủ Form, Sizable ToolWindow: có thể thay đ i kíchổ th cướ c aủ Form…
Icon Thiết lập biểu t ngượ cho Form (các tệp ảnh có đuôi .ico).
MainMenuStrip Gắn kết Form v i Menu.ớ
Opacity Thiết lập độ trong su tố cho nền c aủ Form, nếu độ trong su tố <100% thì có thể nhìn xuyên thấu những gì nằm bên d iướ Form.
ShowIcon Nếu nhận giá trị True thì cho phép hiển thị biểu tượng đã được thiết lập thu cở ộ tính Icon, ngược lại thì nhận giá tr ị False.
StartPosition Thiết lập vị trí xuất hiện c aủ Form trên màn hình. Manual: xuất hiện ở góc trên bên trái màn hình, CenterScreen: gi aữ màn hình…
Text Thiết lập dòng tiêu đề của Form.
Window State Thiết lập trạng thái c aủ Form khi chạy ch ngươ trình. Normal: hiểnthị Form đúng theo kích cỡ thiết kế, Maximized: phóng to Form bằng màn hình, Minimized: thu nh ỏForm trên thanh Taskbar
3.2.1.2. Sự ki nệ
Để hi n thể ị danh sách các sự ki n c a cácệ ủ đi u khi n,ề ể ta kích chu tộ tại bi uể tượng trên cửa s Propertổ ies:
Hình 35. Các s ki n c a Formự ệ ủ
Mu n g i s ki n nào thì ta kích đúp chu t vào tên s ki n đó, k t quố ọ ự ệ ộ ự ệ ế ả VISUAL BASIC s t đ ng t o ra dòng tiêu đ c a phẽ ự ộ ạ ề ủ ương th c ch a s ki nứ ứ ự ệ trong c a s code.ử ổ
Form có m t s s ki n thông d ng nh sau:ộ ố ự ệ ụ ư
Load đ cượ kích hoạt khi Form được nạp vào bộ nh ,ớ nó th ngườ được dùng để kh i tở ạo các giá tr vàị trạng thái cho các biến, các điều khiển… trên Form.
Click đ cượ kích hoạt khi ng iườ dùng kích chu t ộ trên Form.
FormClosed đ cượ kích hoạt khi ng iườ dùng kích chu tộ vào nút Close x ở góc trên bên phải để đóng Form.
FormClosing Cũng đ cượ kích hoạt khi ng iườ dùng kích chu tộ vào nút Close x, nh ngư xảy ra tr cướ sự kiện FormClosed t cứ là đ cượ phát sinh tr cướ khi c aử sổ Form chuẩn b đóngị l i.ạ
Ví d :ụ N uế không muốn ng iườ dùng đóng Form b ngằ cách bấm ch nọ bi uể tượng Close thì trong thủ t cụ FormClosing ta đ tặ thu cộ tính Cancel = True như sau:
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
e.Cancel = True End Sub
3.2.2 H pộ văn b nả TextBox
H pộ văn b nả là đi uề khi nể r tấ thông dụng, dùng để nh pậ dữ liệu đầu vào từ phía ng iườ sử d ngụ và hi nể thị các k tế quả đã tính toán được.
3.2.2.1. Thu cộ tính
Name Tên Textbox, bắt đầu b iở tiếp đầu ng ữtxt BackColor Thiết lập mầu nền cho hộp TextBox.
Enabled Enabled=False: không cho phép ng iườ dùng truy cập vào TextBox (H p Tộ extbox b m đi), nị ờ g cượ lại thì bằng True.
Font Thiết lập kiểu ch vàữ cỡ ch ữcho h p vộ ăn bản. ForeColor Thiết lập mầu ch ữcho hộp văn bản.
Locked Locked = True: khóa không cho phép dịch chuyển vị trí c aủ h pộ văn bản trên Form, ng cượ lại thì nhận giá trị False.
MaxLength Quy đ nhị chiều dài t iố đa đ cượ chấp nhận c aủ hộp văn bản, giá trị mặc định là 32767 hoặc 0, t cứ là có thể ch aứ 32767 ký t .ự M iọ xác lập khác 0, ví dụ 5 thì ch ỉ cho phép ng iườ dùng nhập t i đa 5 ố ký t ựvào h p vộ ăn bản.
Multiline Multiline = False: chỉ cho phép hiển thị văn bản trên m tộ dòng, và khi thiết kế ta ch thỉ ay đ i ổ đ cượ đ dộ ài c aủ h p vộ ăn bản. Multiline = True: cho phép văn bản đ cượ hiển thị trên nhiều dòng, và có th thể ay đ i ổ cả đ dộ ài lẫn độ r ng c aộ ủ h p ộ văn bản khi thiết kế.
PasswordChar Thu cộ tính này cho phép người sử dụng bảo mật được thông tin nhập vào Textbox. Ví dụ đặt thu cộ tính này bằng ký tự „*‟ khi đó toàn bộ dữ liệu nhập vào sẽ đ cượ hiển th ịd iướ dạng dấu hoa th .ị
ReadOnly ReadOnly = True: h pộ văn bản vẫn đ cượ truy cập nh ngư người dùng không th thể ay đ i ổ đ cượ n i dungộ bên trong.
ScrollBars Thiết lập thanh cu nố ngang, d cọ cho h pộ văn bản (có hiệu l cự khi Multiline = True). Chú ý: thanh cu n nố gang ch ỉ có hiệu lực khi WordWrap = False.
TabIndex Thứ tự truy cập c aủ h pộ văn bản khi ng iườ dùng bấm phím Tab, thứ tự đầu tiên là 0.
Text Ch aứ n i dung ộ c aủ h p ộ văn bản.
TextAlign Thiết lập chế độ căn ch nh:ỉ trái, phải hoặc gi aữ của dữ liệu trong h p Tộ extBox.
Visible Visible = True: hiển th ị h p vộ ăn bản, Visible = False: ẩn h pộ văn bản.
WordWrap WordWrap = True: dòng văn b n đả ược t đ ng cu n xu ngự ộ ộ ố dòng khi g p l bên ph i c a h p TextBox, ngặ ề ả ủ ộ ượ ạc l i thì nh nậ giá tr False. Ch có hi u l c khi Multiline = Trueị ỉ ệ ự
3.2.2.2 S ki nự ệ
H p văn b n có m t s s ki n c b n sau:ộ ả ộ ố ự ệ ơ ả
TextChanged được kích hoạt khi ng iườ dùng th cự hiện sự thay đ iổ bất kỳ trong h p vộ ăn bản nh :ư thêm, xoá, sửa, dán văn bản.
Click đ cượ kích hoạt khi ng iườ dùng kích chu t ộ vào hộp văn bản. DoubleClick đ cượ kích hoạt khi ng iườ dùng kích đúp chu t ộ vào h p vộ ăn bản. GotFocus đ cượ kích hoạt khi ng iườ dùng chuyển tiêu điểm t i h p vớ ộ ăn bản. KeyPress Trả về ký tự (trừ các ký tự đặc biệt như phím Delete, Home, Ctrl,
F1…)mà ng iườ s dử ụng gõ vào h p vộ ăn bản thông qua thu cộ tính KeyChar.
KeyDown Trả về mã Ascii của tất cả các ký tự mà ng iườ sử d ngụ gõ vào h pộ văn bản thông qua thu cộ tính KeyCode.
MouseMove đ cượ kích hoạt khi ng iườ dùng di chuyển chu t ộ qua h p vộ ăn bản. MouseLeave đ cượ kích hoạt khi ng iườ dùng d i chu t raờ ộ kh iỏ h p vộ ăn bản.
Ví dụ 1: Để hi nể thị mã Ascii c aủ m tộ ký tự b tấ kỳ đ cượ gõ vào h p vănộ b nả
TextBox1 ta có
đo nạ ch ngươ trình như sau:
Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles
TextBox1.KeyDown
MessageBox.Show(e.KeyCode) End Sub
Ví dụ 2: Dùng sự ki nệ KeyPress để ki mể tra vi cệ nh pậ dữ li u:ệ chỉ cho phép nh pậ vào hộp văn b nả TextBox1 các số từ 0 t iớ 9, d uấ âm , d uấ chấm th pậ phân . , phím Del (có mã Ascii=13) và phím Backspace (có mã Ascii = 8) để xóa dữ li u.ệ Ta có đo nạ chương trình như sau:
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If (e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = "-" Or e.KeyChar = "." Or
Convert.ToInt32(e.KeyChar) = 8 Or Convert.ToInt32(e.KeyChar) = 13 Then e.Handled = False Else e.Handled = True End If End Sub
N uế m iỗ ký tự được nh pậ vào h pộ Textbox không thoả mãn đi uề ki nệ if thì sẽ bị hủy bỏ
3. 2.3 Nút l nhệ – Button
Nút l nhệ cho phép ng iườ dùng thực hiện một hành đ ngộ nào đó. 3.2.3.1. Thu c tínhộ
Name Tên nút lệnh, bắt đầu b iở tiếp đầu ng ữ btn BackColor Thiết lập mầu nền cho nút lệnh.
BackgroundImage Thiết lập ảnh nền cho nút lệnh.
Enabled Enabled=False: ng iườ dùng không thể tác đ ngộ lên nút lệnh, ng cượ lại thì bằng True.
Font Xác lập kiểu ch vàữ c ỡch ữcho nút lệnh. ForeColor Thiết lập mầu ch ữcho nút lệnh.
Image Thiết lập ảnh hiển th trị ên nút lệnh.
Locked Locked = True: khóa không cho phép dịch chuyển vị trí c aủ nút lệnh trên Form, ng cượ lại thì nhận giá tr ịFalse.
TabIndex Th t trứ ự uy cập c aủ nút lệnh khi ng iườ dùng bấm phím Tab. Text Tiêu đề c aủ nút lệnh. Ta có thể quy đ nhị phím nóng cho
nút lệnh bằng cách đặt dấu “&” tr cướ m t ộ ký t ực aủ Text. Ví dụ &Quit sẽ được hiển thị là Quit, khi ng iườ sử d ngụ bấm Alt+Q ch ngươ trình sẽ kích hoạt nút lệnh Quit.
Visible Visible = True: hiển th ị nút lệnh, Visible = False: ẩn nút 3.2.3.2. Sự ki nệ
Nút l nhệ có m tộ số sự ki nệ cơ bản sau:
Click đ cượ kích hoạt khi ng iườ dùng kích chu t ộ vào nút lệnh.
GotFocus đ cượ kích hoạt khi ng iườ dùng chuyển tiêu điểm t i nútớ LostFocus đ cượ kích hoạt khi nút lệnh mất tiêu điểm.
MouseDown đ cượ kích hoạt khi ng iườ dùng đặt chu t ộ vào nút lệnh. MouseUp đ cượ kích hoạt khi ng iườ dùng đ aƣ chu t raộ kh iỏ nút lệnh. MouseMove đ cượ kích hoạt khi ng iườ dùng di chuyển chu t ộ trên nút MouseLeave đ cượ kích hoạt khi ng iườ dùng d i chu t raờ ộ kh iỏ nút lệnh.
3.2.4 Nhãn – Lable
Nhãn dùng để hi nể thị những thông tin có tính ch tấ c đ nhố ị ng iườ sử d ngụ không có kh ảnăng thay đ iổ ví d ụnhư dòng thông báo, hƣớng d nẫ …
Nhãn có m tộ số thu cộ tính hay dùng sau:
Name Tên nhãn, bắt đầu b i ở tiếp đầu ng ữlbl